//
//  main.swift
//  swift开发这必备tips
//
//  Created by 左忠飞 on 2021/8/11.
//

import Foundation

//写一个让参数加1的函数
func addOne(num:Int) -> Int {
    return num + 1
}

//写一个生产函数的函数
//传入的参数就是需要加的值,然后返回一个加这个数的函数
func addTo(_ adder:Int) -> (Int) -> Int {
    return {
        num in
        return num + adder
    }
}

//调用addTo函数生产一个加2的函数
let addTwo = addTo(2)
print(addTwo(4))

let addThree = addTo(3)
print(addThree(5))


//创建一个比较大小的函数
func greaterThan(_ comparer:Int) -> (Int) -> Bool {
    return {
        $0 > comparer
    }
}

let greaterThan10 = greaterThan(10)
print(greaterThan10(13))
print(greaterThan10(8))

//柯里化是一种量产相似方法的好办法，可以通过柯里化一个方法模板来避免写出很多重复代码，也方便了今后维护。
